package com.ymx.darling.type;

import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * 类型转换处理器<br/>
 * 从结果集中读取出指定类型的数据并返回
 *
 * @author 爱java的小于
 */
public interface TypeHandler<T> {
    /**
     * 读取结果集指定字段的值并返回
     *
     * @param resultSet 结果集
     * @param columIndex 指定字段的索引位置
     * @return Object 值
     * @throws SQLException 可能会抛出此异常
     */
    T getResult(ResultSet resultSet, int columIndex) throws SQLException;


    /**
     * 将数据放入statement中
     * @param statement PreparedStatement
     * @param value 要插入的值
     * @param index 索引
     * @throws SQLException 可能会抛出此异常
     */
    void setParameter(PreparedStatement statement, T value, int index) throws SQLException;
}
